$(function () {
    // 需求1 : 点击a链接 显示和隐藏盒子
    $('#loginBox a').on('click', function () {
        // 第一个a链接被点击  隐藏第一个显示第二个
        // 显示的注册区域  隐藏登录区域
        $('#loginBox').hide()
        $('#regBox').show()
    })
    $('#regBox a').on('click', function () {
        // 第二个a链接被点击  显示第一个隐藏第二个
        // 显示的登录区域  隐藏注册区域
        $('#loginBox').show()
        $('#regBox').hide()
    })

    // 需求2  定义校验规则
    // console.log(layui); // 导入 layui.all.js 就会出现一个变量 layui
    let form = layui.form  // 把layui里面的form属性 导出直接用变量接收
    // 定义校验规则 使用的是  form.verify()  他的参数是 对象
    // 参数是对象 属性是校验名称 值是校验规则 值有两种类型 函数和数组
    // 属性是校验名称 值是校验规则
    form.verify({
        // 值有两种类型 函数和数组
        username: [
            /^[a-zA-Z0-9]{1,10}$/,
            '用户名必须1到10位数字和字母'
        ],
        pwd: [
            /^[a-zA-Z0-9]{6,12}$/,
            '密码必须6到12位数字和字母'
        ],
        // 确认密码的校验规则
        rePwd: function (value) {
            // 判断面的值和确认密码的值是否想相同
            // 获取确认密码的值
            // console.log(value);
            let pwd = $('#regBox input[name=password]').val()
            // 哦按段的是出错的情况
            if (pwd !== value) {
                return '两次密码输入不一致'
            }
        }
    });

    // 需求3 注册表单
    let layer = layui.layer
    $('#formReg').on('submit', function (e) {
        // 阻止标签的提交 
        e.preventDefault()
        // 发送ajax
        axios({
            method: 'POST',
            url: ' /api/reguser',
            // jQuery中的ajax 参数 头信息固定
            // axios中的ajax 参数根据类型不同头信息也不同
            data: $('#formReg').serialize(),
        }).then(function (res) {
            // console.log(res.data);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message, { icon: 5 });
            }
            // 成功后提示
            layer.msg(res.data.message, { icon: 6 });

            // 切换到登入框
            $('#regBox a').click()

            // 清空表单   DOM对象中有一个方法  reset() 可以充值表单
            $('#formReg')[0].reset('')
        })
    })

    // 需求4 登入功能
    $('#formLogin').on('submit', function (e) {
        // 阻止标签的提交 
        e.preventDefault();
        // 发送ajax
        axios({
            method: 'POST',
            url: '/api/login',
            // jQuery中的ajax 参数 头信息固定
            // axios中的ajax 参数根据类型可以控制  content-type 属性的值
            data: $(this).serialize(),
        }).then(function (res) {
            // console.log(res.data);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message, { icon: 5 });           
            }
            // 成功后提示
            layer.msg(res.data.message, { icon: 6 });

            // 清空表单   DOM对象中有一个方法  reset() 可以充值表单
            $('#formLogin')[0].reset('')

            // 页面跳转
            location.href = '/index.html'

            // 保存token 后面用于身份验证
            localStorage.setItem('token',res.data.token)
        })
    })








})